/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pkgUtil.pkgSupportFile.pkgFrameworkFile;

import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 *
 * @author Administrador
 */
public class DialogSelectFile {

    public static final int CANCEL_OPTION = JFileChooser.CANCEL_OPTION;
    public static final int ERROR_OPTION = JFileChooser.ERROR_OPTION;
    public static final int APROVE_OPTION = JFileChooser.APPROVE_OPTION;
    
    
    public static SelectFile showDialogFileForSave(java.awt.Component parent, String descriptionFile, String[] filterExtensions) {

        FileNameExtensionFilter filter = buildFilter(descriptionFile, filterExtensions);

        JFileChooser selectorArchivo = new JFileChooser();
        selectorArchivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
        if (filter != null) {
            selectorArchivo.setFileFilter(filter);
        }


        int resultado = selectorArchivo.showSaveDialog(parent);

        SelectFile selectFile = new SelectFile();

        // si el usuario hizo clic en el botón Cancelar del cuadro de diálogo, regresar
        if (resultado == JFileChooser.CANCEL_OPTION) {
            selectFile.setSelectFile(null);
        } else {
            File file = selectorArchivo.getSelectedFile();
            selectFile.setSelectFile(file);
        }

        selectFile.setResultSelection(resultado);

        return selectFile;

    }

    public static SelectFile showDialogFileForRead(java.awt.Component parent, String descriptionFile, String[] filterExtensions) {

        FileNameExtensionFilter filter = buildFilter(descriptionFile, filterExtensions);
        // mostrar cuadro de diálogo para que el usuario pueda seleccionar el archivo
        JFileChooser selectorArchivo = new JFileChooser();
        selectorArchivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
        if (filter != null) {
            selectorArchivo.setFileFilter(filter);
        }
        int resultado = selectorArchivo.showOpenDialog(parent);

        SelectFile selectFile = new SelectFile();

        // si el usuario hizo clic en el botón Cancelar del cuadro de diálogo, regresar
        if (resultado == JFileChooser.CANCEL_OPTION) {
            selectFile.setSelectFile(null);
        } else {
            File file = selectorArchivo.getSelectedFile();
            selectFile.setSelectFile(file);
        }

        selectFile.setResultSelection(resultado);

        return selectFile;

    }

    private static FileNameExtensionFilter buildFilter(String descriptionFile, String[] filterExtensions) {
        if (descriptionFile == null) {
            return null;
        }
        if (filterExtensions == null || filterExtensions.length == 0) {
            return null;
        }

        FileNameExtensionFilter filter = new FileNameExtensionFilter(descriptionFile, filterExtensions);
        return filter;
    }
}
